package com.bzkj.basicinfo.domain.putaway;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 上架任务主表实体
 *
 *@author lixinyu
 * @date 2025-10-22
 */
@Data
public class WmsPutawayTaskEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /** 主键ID */
    private Long id;

    /** 上架任务号 */
    private String putawayTaskNo;

    /** 收货单ID */
    private Long receiveOrderId;

    /** 收货单号 */
    private String receiveOrderNo;

    /** 收货明细ID */
    private Long receiveDetailId;

    /** 商品ID */
    private String productId;

    /** 商品编码 */
    private String productCode;

    /** 商品名称 */
    private String productName;

    /** 商品规格 */
    private String productSpec;

    /** 生产厂家 */
    private String manufacturer;

    /** 批次号 */
    private String batchCode;

    /** 生产日期 */
    private String productDate;

    /** 有效期至 */
    private String expDate;

    /** 待上架数量 */
    private BigDecimal putawayQuantity;

    /** 已上架数量 */
    private BigDecimal putedQuantity;

    /** 单位编码 */
    private String unitCode;

    /** 单位名称 */
    private String unitName;

    /** 推荐储位ID */
    private String recommendLocationId;

    /** 推荐储位编码 */
    private String recommendLocationCode;

    /** 实际储位ID */
    private String actualLocationId;

    /** 实际储位编码 */
    private String actualLocationCode;

    /** 任务状态: 0待上架/1上架中/2已上架/9异常 */
    private String taskStatus;

    /** 优先级: 0-9, 9最高 */
    private Integer priority;

    /** 仓库ID */
    private String stoId;

    /** 仓库名称 */
    private String stoName;

    /** 分配人 */
    private String assignedTo;

    /** 分配时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date assignedTime;

    /** 上架人 */
    private String putawayBy;

    /** 上架时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date putawayTime;

    /** 备注 */
    private String remark;

    /** 创建人 */
    private String createBy;

    /** 创建时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;

    /** 更新人 */
    private String updateBy;

    /** 更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;

    /** 扩展字段1 */
    private String def1;

    /** 扩展字段2 */
    private String def2;

    /** 扩展字段3 */
    private String def3;

    /** 扩展字段4 */
    private String def4;

    /** 扩展字段5 */
    private String def5;
}
